1. Field of the Invention
The present invention relates to high-performance computer systems. More particularly, the present invention relates to a computer system that predicts a value as the result of execution of an instruction and executes a subsequent instruction, according to the result of the value prediction.
2. Description of Related Art
For shortening program run time with high-performance computer systems, control dependencies and data dependencies are the questions at issue. As regards the control dependencies, a computer predicts the result of execution of a branch instruction and proceeds to execute an instruction predicted as the one to which it will branch before determining what instruction to branch to. In this manner, if the prediction is successful, data-independent instructions can be executed whether or not branch instructions have been executed, so that high-speed program execution can be achieved. If the prediction is unsuccessful, the computer undoes the predicted instruction execution it did and re-executes a proper instruction to which to branch. In this way, the computer has a mechanism for keeping program execution producing correct results.
As regards the data dependencies, on the other hand, there exists a method in which program execution performance is enhanced by predicting a value of data that will be loaded as the result of arithmetic operation or by a data transfer instruction.
Known methods for value prediction include last value prediction by which a computer predicts that the same value as the last one is iterated and stride prediction by which a computer predicts that a data value changes with constant difference from the preceding one. These methods are set forth in U.S. Pat. No. 5,996,060. A further method is known, such as two-level prediction which uses correlation between two values in the past value occurrence pattern.